package org.bopis.services.impl;

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.bopis.domain.Bopi;
import org.bopis.general.Constantes;
import org.bopis.services.interfaz.BopisServicio;


public class BopisServicioImpl implements BopisServicio {

	
	private static Log log = LogFactory.getFactory().getInstance(BopisServicioImpl.class);
	
	
	
	@Override
	public List<Bopi> buscarPorFechaYTomo(String fecha, String tomo) {
		
		log.info("fecha: " + fecha);
		log.info("tomo: " + tomo);
		
		List<Bopi> lista = new ArrayList<Bopi>();
    	FileReader fr = null;
    	
		try {
	    	
			fr = new FileReader(Constantes.RUTA_FECHAS);
			BufferedReader bf = new BufferedReader(fr); 
			Bopi b = null;
	    	
			String sCadena = "";
			while ((sCadena = bf.readLine()) != null) {
				if (sCadena.substring(0, 10).equalsIgnoreCase(fecha)) {
					log.info("Hay PDF para esa fecha");
					
					String pdf = "";
					if (sCadena.charAt(11) == '0') {
						pdf = sCadena.substring(11, 12);
					}
					else {
						pdf = sCadena.substring(11, 17);
					}
					
					log.info(pdf);
					b = new Bopi();
					//b.setFechaPublicacion(new Date(fecha);
					b.setFechaPublicacionString(fecha);
					b.setNombre(pdf + tomo);
					b.setRutaBopi(Constantes.RUTA_BOPIS + b.getNombre());
					
					log.info("b.getNombre(): " + b.getNombre());
					lista.add(b);
					
					/**
					File myFile = null;
					if (Desktop.isDesktopSupported()) {
					    try {
					        myFile = new File("/home/entelgypsy/Datos/V1.1/bopis/" + pdf + ".pdf");
					        Desktop.getDesktop().open(myFile);
					        
					        myFile = new File("/home/entelgypsy/Datos/V1.1/bopis/" + pdf + ".pdf");
					        Desktop.getDesktop().open(myFile);
					        
					        myFile = new File("/home/entelgypsy/Datos/V1.1/bopis/" + pdf + ".pdf");
					        Desktop.getDesktop().open(myFile);
					        
					        
					    } catch (IOException ex) {
					        // no application registered for PDFs
					    }
					    
					}
					
					else {
						System.out.println("No Desktop.isDesktopSupported()");
					}*/
					
				}
					
					
					
			}
			 
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
		
		return lista;
	}

}
